Display of 3d images

ABSTRACT

The systems and methods of the present disclosure may provide, among other features, easy-to-learn, efficient, and/or unambiguous methods for controlling rotation and/or other manipulation of multi-dimensional (for example, 2D and/or 3D) images and/or objects. The systems and methods may be used for any type of image display/manipulation on a wide variety of computer systems and coupled displays including personal computers with monitors, phones, tablets, and televisions. In general, a user may select a particular rotation plane (for example, rotation only in x axis) by placement of a cursor, or touch of a finger, over a certain portion of the image such that subsequent movements of the mouse result in only rotations in the particular plane, and unwanted rotations and/or other manipulations in other planes do not occur. In this way, the user can more precisely control rotations of the 3D image and/or object.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/872,920, filed Apr. 29, 2013, with application claims the benefit ofpriority under 35 U.S.C. §119(e) from U.S. Provisional Application No.61/640,553, filed Apr. 30, 2012, titled “DISPLAY OF 3D IMAGES,” thedisclosures of each of which are hereby incorporated by reference intheir entireties.

BACKGROUND

Many existing vendors offer software that creates and displays images,including the display of color or grayscale images that appear to bethree dimensional. These images are typically based on data describing avolume of material or human tissue. In the field of medical imaging,devices such as CT, MRI, PET, and Ultrasound can generate datadescribing a volume of human or animal tissue. It is common forcaregivers to display these volumes in a manner such that one or moreimages appear to be three dimensional using techniques such as volumerendering and surface shading. In addition, such software many enablethe user to perform multi-planar reconstructions, maximum intensitypixel displays, or display grayscale or color slabs of various thicknessand orientations.

When faced with a display of a three dimensional image, the user maywant to rotate the image in any one of three axes or combinationsthereof. Often, this rotation is controlled by an input device such as amouse. For example, depression of a left mouse button combined withmovement of the mouse from left to right might control rotation of theimage from left to right (rotation about y axis), similar movement ofthe mouse away from or toward the user might control tilting of theimage from toward or away from the perspective of the user (rotationabout x axis) and some other sweeping movement of the mouse around theperimeter of the image in a near circular motion might control rotationof the image about the z axis. However, such mouse movements may beambiguous, so that a user intending to rotate an image in the z axis mayaccidentally instead cause a rotation in the x axis (possibly incombination with movement in the z and/or y axes). Furthermore, a mousemay control other actions, such as cropping of the image in variousplanes, so that mouse movements intended to cause rotation may result ininadvertent cropping and other actions.

SUMMARY

The systems and methods of the present disclosure may provide, amongother features, easy-to-learn, efficient, and/or unambiguous methods forcontrolling rotation and/or other manipulation of multi-dimensional, forexample, 2D (two-dimensional) and/or 3D (three-dimensional), imagesand/or objects. The systems and methods may be used for any type ofimage display/manipulation on a wide variety of computer systems andcoupled displays including personal computers with monitors, phones,tablets, and televisions. In general, a user may select a particularrotation plane (for example, rotation only in x axis) by placement of acursor, or touch of a finger, over a certain portion of the image suchthat subsequent movements of the mouse (or other input device) result inonly rotations in that particular plane, and unwanted rotations and/orother manipulations in other planes do not occur. In this way, the usercan more precisely control rotations of the 3D image and/or object.

In an embodiment, a tangible computer readable medium is described thatstores software instructions configured for execution by a computingsystem having one or more hardware processors in order to cause thecomputing system to perform operations comprising displaying a 3Dmedical object on a display of the computing system; receiving an firstinput from a user of the computing system at a particular location ofthe display, the first input comprising a touch input or a mouse clickat the particular location and indicating initiation of a rotationfunction; accessing rotation rules associated with the 3D medicalobject, the rotation rules indicating planes of rotation available forrotating the 3D medical object based on the particular location of thefirst input; in response to determining that the particular location isto a side of the display, limiting rotation of the 3D medical object torotations about a horizontal axis of the 3D medical object, such thatthe computing system does not allow rotation of the 3D medical objectabout any other axis until the rotation function is released; inresponse to determining that the particular location is to a top orbottom of the display, limiting rotation of the 3D medical object torotations about a vertical axis of the 3D medical object, such that thecomputing system does not allow rotation of the 3D medical object aboutany other axis until the rotation function is released; in response todetermining that the particular location is near the center of thedisplay, limiting rotation of the 3D medical object to rotations aboutboth the horizontal and vertical axes, such that the computing systemdoes not allow rotation of the 3D medical object about any other axisuntil the rotation function is released; and receiving a second inputfrom the user in order to initiate rotation of the 3D medical objectabout one or more of the horizontal and vertical axes.

According to an aspect, the tangible computer readable medium mayfurther comprise, in response to determining that the particularlocation is to a side of the display, displaying one or more horizontalguide lines on the display, wherein the horizontal guide linescorrespond to the horizontal axis; in response to determining that theparticular location is to the top or bottom of the display, displayingone or more vertical guide lines on the display, wherein the verticalguide lines correspond to the vertical axis; and in response todetermining that the particular location is near the center of thedisplay, displaying one or more horizontal and vertical guide lines onthe display, wherein the horizontal guide lines correspond to thehorizontal axis and the vertical guide lines correspond to the verticalaxis.

According to another aspect, the tangible computer readable medium mayfurther comprise adjusting characteristics of the 3D medical objectbased at least in part on the rotation function.

In another embodiment, a computer-implemented method of manipulating amulti-dimensional object in an electronic environment is describedcomprising, as implemented by one or more computer systems comprisingcomputer hardware and memory, the one or more computer systemsconfigured with specific executable instructions, providing to a user,on an electronic display, a multi-dimensional object; receiving, fromthe user, a rotation selection input; determining a restriction on themanipulation of the multi-dimensional object based at least in part onthe rotation selection input; receiving, from the user, an objectmanipulation input; and manipulating the multi-dimensional object basedat least in part on both the object manipulation input and therestriction on the manipulation.

According to an aspect, the computer-implemented method may furthercomprise, in response to an input from the user, displaying, on theelectronic display, one or more guide lines indicating one or moreavailable rotation selection inputs, wherein the received rotationselection input is selected from the one or more available rotationselection inputs.

According to another aspect, the input from the user comprises at leastone of: movement of a cursor or touching of the electronic display nearthe multi-dimensional object, movement of a cursor or touching of theelectronic display on the multi-dimensional object, movement of a cursoror touching of the electronic display near one or more of the guidelines, movement of a cursor or touching of the electronic display on oneor more of the guide lines, and movement of a cursor to or touching of aparticular portion of the electronic display.

According to yet another aspect, displaying the one or more guide linescomprises determining boundaries of the multi-dimensional object; anddisplaying the one or more guide lines based on the determinedboundaries of the multi-dimensional object, wherein the one or moreguide lines do not overlap with the multi-dimensional object.

According to another aspect, the characteristics of the one or moreguide lines are dynamically adjusted to allow the user to easilyrecognize the one or more guide lines, wherein the characteristicscomprise at least one of a position, a spacing, and a thickness.

According to yet another aspect, the guide lines are removed from theelectronic display in response to receiving the object manipulationinput from the user.

According to another aspect, the rotation selection input comprises atleast one of: placing a cursor or touching the electronic display at aparticular portion of the multi-dimensional object, placing a cursor ortouching the electronic display at one or more of the guide lines,placing a cursor or touching the electronic display at an arced icon,pressing a button on a mouse while placing a cursor in proximity to oneor more of the guide lines, touching a particular portion of theelectronic display.

According to yet another aspect, the restriction on the manipulation ofthe multi-dimensional object comprises at least one of: allowingrotation of the multi-dimensional object on only one particular axis,and allowing rotation of the multi-dimensional object on only twoparticular axes.

According to another aspect, receiving an object manipulation inputcomprises the user sliding a finger from one location on the electronicdisplay to another location on the electronic display.

According to yet another aspect, the multi-dimensional object comprisesa 3D object, wherein manipulating the 3D object comprises, in responseto the user touching the electronic display on a side of the display andsliding the finger vertically, rotating the 3D object on an x axis; inresponse to the user touching the electronic display on a top or bottomof the display and sliding the finger horizontally, rotating the 3Dobject on a y axis; and in response to the user touching the electronicdisplay near a middle and sliding the finger in any direction, rotatingthe 3D object on at least one of both the x axis and the y axis, and a zaxis, wherein the rotation of the 3D object is proportional to adistance the finder is slid.

According to another aspect, receiving an object manipulation inputcomprises the user moving an electronic indicator from one location onthe electronic display to another location on the electronic display.

According to yet another aspect, the multi-dimensional object comprisesa 3D object, wherein manipulating the 3D object comprises, in responseto the user making a selection with the electronic indicator on a sideof the display and moving the electronic indicator vertically, rotatingthe 3D object on an x axis; in response to the user making a selectionwith the electronic indicator on a top or bottom of the display andmoving the electronic indicator horizontally, rotating the 3D object ona y axis; in response to the user making a selection with the electronicindicator near a middle and moving the electronic indicator in anydirection, rotating the 3D object on at least one of both the x axis andthe y axis, and a z axis; and in response to the user selecting an iconwith the electronic indicator and moving the electronic indicator in anydirection, rotating the 3D object on at least one of both the x axis andthe y axis, and a z axis, wherein the rotation of the 3D object isproportional to a distance the electronic indicator is moved.

According to another aspect, the electronic indicator comprises at leastone of a mouse pointer and a cursor.

According to yet another aspect, receiving an object manipulation inputcomprises the user touching the electronic display at two or morelocations, and manipulating the multi-dimensional object comprises, inresponse to the user touching the electronic display in two places, andsliding the two places in a substantially same direction, translatingthe multi-dimensional object; in response to the user touching theelectronic display in two places, and sliding the two places insubstantially opposite directions, changing the size of themulti-dimensional object; and in response to the user touching theelectronic display in two places, and rotating the two places, rotatingthe multi-dimensional object.

According to another aspect, manipulating the multi-dimensional objectincludes at least one of adjusting characteristics of themulti-dimensional object and adjusting viewing properties of themulti-dimensional object, wherein viewing properties include at leastone of a window level and a window width.

According to yet another aspect, manipulating the multi-dimensionalobject includes rotating the multi-dimensional object along particularaxes, wherein the particular axes are defined based on correlation withcharacteristics of the multi-dimensional object.

In yet another embodiment, a computer system is described comprising oneor more hardware processors in communication with a computer readablemedium storing software modules including instructions that areexecutable by the one or more hardware processors, the software modulesincluding at least: a user interface module configured to display amulti-dimensional object on an electronic display; a user input moduleconfigured to receive a first input from a user at a particular locationof the electronic display, the first input comprising a mouse click ortouch input at the particular location and indicating initiation of arotation function; an object rotation module configured to accessrotation rules associated with the multi-dimensional object, therotation rules indicating planes of rotation available for rotating themulti-dimensional object based on the particular location of the firstinput, the object rotation module further configured to: in response todetermining that the particular location is near a vertical guide line,limiting rotation of the multi-dimensional object to rotations about ahorizontal axis of the multi-dimensional object, such that the objectrotation module does not allow rotation of the multi-dimensional objectabout any other axis until the rotation function is released; inresponse to determining that the particular location is near ahorizontal guide line, limiting rotation of the multi-dimensional objectto rotations about a vertical axis of the multi-dimensional object, suchthat the object rotation module does not allow rotation of themulti-dimensional object about any other axis until the rotationfunction is released; in response to determining that the particularlocation is near a particular icon, limiting rotation of themulti-dimensional object to rotations about an axis perpendicular to asurface of the electronic display, such that the object rotation moduledoes not allow rotation of the multi-dimensional object about any otheraxis until the rotation function is released; and receiving via the userinput module a second input from the user in order to initiate rotationof the multi-dimensional object about one or more of the horizontal,vertical, and perpendicular axes.

BRIEF DESCRIPTION OF THE DRAWINGS

The following aspects of the disclosure will become more readilyappreciated as the same become better understood by reference to thefollowing detailed description, when taken in conjunction with theaccompanying drawings.

FIG. 1 is a block diagram of a system in which 3D images may be viewedand controlled, according to an embodiment of the present disclosure.

FIGS. 2-4 illustrate sample user interfaces that may be displayed by thesystem in which 3D images may be viewed and controlled, according toembodiments of the present disclosure.

FIG. 5A illustrates a sample user interface of a mobile device in which3D images may be viewed and controlled through touch input from a user,according to an embodiment of the present disclosure.

FIGS. 5B-5E illustrate sample user interfaces of the system in which 3Dimages may be viewed and controlled through touch input from a user,according to an embodiment of the present disclosure.

FIGS. 6A-6D illustrate sample user interfaces of the system in which 3Dimages may be viewed and controlled through multiple touch input from auser, according to an embodiment of the present disclosure.

FIGS. 7A-7B illustrate sample user interfaces of an example 3D CADsystem wherein properties of the displayed 3D objects may be controlledthrough touch input from a user, according to an embodiment of thepresent disclosure.

FIGS. 8A-8B illustrate sample user interfaces of an example 3D CADsystem wherein properties of the displayed 3D objects may be controlledthrough multiple touch input from a user, according to an embodiment ofthe present disclosure.

FIGS. 9A-9D illustrate sample user interfaces of the system in which 2Dimages may be viewed and the properties of 2D objects may be controlledthrough touch input from a user, according to an embodiment of thepresent disclosure.

FIG. 10 is a flow diagram depicting an illustrative operation of thesystem, according to an embodiment of the present disclosure.

DETAILED DESCRIPTION

The systems and methods of the present disclosure may provide, amongother features, easy-to-learn, efficient, and/or unambiguous methods forcontrolling rotation and/or other manipulation of multi-dimensional (forexample, 2D and/or 3D) images and/or objects. Although the descriptionand examples discussed herein relate to medical images, the systems andmethods could be used for any type of image display/manipulation on awide variety of computer systems and coupled displays including personalcomputers with monitors, phones, tablets, and televisions. Particularinput mechanisms are discussed herein with reference to various exampleembodiments. However, other input mechanisms are usable. For example,any examples discussed with reference to touch screen inputs may also beimplemented using inputs from a mouse, voice commands, gestures, and/orany other type of input. Similarly, any examples discussed withreference to mouse-based inputs may also be implemented using touchinputs from a touch-sensitive device, voice commands, gestures, and/orany other type of input.

In one embodiment, the computing system 150 (discussed in detail belowwith reference to FIG. 1), or any other computing system, displays 2Dand/or 3D images and allows a user to rotate and/or manipulate the 2Dand/or 3D images using controls that are discussed below. In general, auser may select a particular rotation plane (for example, rotation onlyin x axis) by placement of a cursor (also referred to as an electronicindicator) over a certain portion of the image such that subsequentmovements of the mouse (or other input device) result in only rotationsin that particular plane, and unwanted rotations and/or othermanipulations in other planes do not occur. In this way, the user canmore precisely control rotations of the 3D image and/or object. As usedherein, a “plane of rotation,” and “rotation plane” each describe animage plane that is perpendicular to the axis about which rotations areperformed. Thus for rotation about the x axis, the rotation plane is theplane defined by the y and z axes.

Example Image Rotation

FIG. 2 illustrates a sample user interface that may be displayed on adisplay of the computing system 150 (for example a computer monitor or atablet). In this example, the user interface depicts a 3D medical image.In the example of FIG. 2, in response to the user positioning the cursor(or electronic indicator) roughly over the midline of the image (forexample, midline relative to left and right), the computing systemdisplays a yellow vertical guide line 210 on that midline to indicatethat from the current mouse position, the mouse can be moved up and downalong the line in order to tilt the image forward or backward about thex axis. In one embodiment, no matter what other tool might otherwise bein use, moving the mouse to the midline of the image causes the verticalyellow guide line 210 to appear and the displayed tool to change to therotate tool 320. This functionality may provide one or more benefits,such as removing the need for the user to manually change tools toaccess the rotation function and/or allowing the user to unambiguouslytilt the image on the x axis (or other axes, as discussed below). Inother embodiments, the guide line 210 may have different displaycharacteristics, such as different length, color, position, etc. Inaddition, in some embodiments, the guide line 210 may be replaced with adifferent indicator of a currently selected rotation plane, such as anicon or text that is placed on the screen near the cursor or at a fixedlocation.

FIG. 3 illustrates the same user interface as FIG. 2, but now withrotation about the y axis selected. In this embodiment, the user haslimited and/or restricted the rotation function to rotations about the yaxis by moving the mouse near the midline of the image relative to thesuperior/inferior aspect (for example, top and bottom) of the image inorder to cause a horizontal yellow guide line 310 to appear. In thisembodiment, when the guide line 310 appears, the tool icon also changesto the rotate icon 320 indicating that movements of the mouse will causethe 3D image to rotate about the y axis so that the user can rotate theimage from left to right (or vice versa) by moving the mouse along theguide line 310, without accidentally rotating the image about the y or zaxis in the process.

FIG. 4 illustrates the same user interface as FIGS. 2 and 3, but nowwith rotation about the z axis selected. In this embodiment, the userhas limited and/or restricted the rotation function to rotations aboutthe z axis by moving the mouse over the arced icon 405 that ispositioned to the left of the image in this example. In response topositioning of the pointer over the arced icon 405, the rotate icon 320is selected and a guide circle 410 appears. The user can then rotate theimage about the z axis by moving the cursor along the guide circle 410.

As noted above, any other visual cues (for example, other than theillustrated guide lines 210, 310 and guide circle 410) may be used inother embodiments. Additionally, other forms of cues may be provided,such as audible or tactile feedback, to indicate a selected rotationaxis.

In one embodiment, rotating the image does not require the user toprecisely move the mouse along the path of the various vertical,horizontal, or circular guides. For example, in one embodiment, withrotation around the y axis selected (for example, FIG. 3), mousemovements with any vector in the left or right direction will cause theimage to rotate in only the horizontal rotation plane so long as theleft mouse button is depressed. Any other input, such as a key or keycombination, may similarly maintain selection of a rotation axis despitemovement of the cursor outside of the guide line or circle. For theuser, the experience simulates grabbing the yellow guide line and thensliding along it. In the embodiment noted above, when the left mousebutton is released, if the user drags the mouse away from the displayedguide line, the system returns to whatever tool or function was in useprior to the rotation.

User preferences or system preferences may be set to determine when theguide lines appear relative to the position of the cursor. For example,moving the mouse to within 2, 5, or 7 pixels, or some percentage of animage pixel height or width, of midline might cause the guide line toappear. In addition, there may be user preferences controlling theappearance of the guide lines (color, thickness, style, shape, arrows,etc.) or other icons that appear in relation to this invention.

In one embodiment, if the mouse is moved to the intersection point orpoints that would activate the pop-up of two lines or a line pluscircle, the user may control two axes of rotation at once.

Therefore, the systems and methods discussed herein provide a simple,intuitive and unambiguous method for rotating images along three axeswhile retaining quick access to any other tool(s) or function(s)previously in use.

Example Device Implementations

FIGS. 5A-5E illustrate example user interfaces that are displayed on amobile or other computing device. The computing device may include anyavailable device, such as a cell phone, smart phone, tablet computer,laptop, desktop or any other computing device 150. In one embodiment,the computing device has an input device that is touch sensitive, suchthat commands may be provided to rotate the displayed image via the usertouching the display or other touch sensitive input device with one ormore fingers. However, in other embodiments the user interface may becontrolled by other input devices, such as a mouse, keyboard, or voicecommands, for example. In the example of FIG. 5A, a 3D medical image isillustrated on a mobile device, such as a mobile phone or tablet that istouch sensitive and able to detect multiple fingers touching thedisplay. In the examples of FIGS. 5B-5E, a 3D object 510, a rectangularprism, is illustrated for ease of illustration and discussion in thisdisclosure. However, any other image or object, such as medical images,schematic images, or any other image, may be used in place of the object510.

In the embodiment illustrated in FIGS. 5A-5E, the user can control whichaxes are available for rotation of the 3D object based on a screenposition from which rotation is initiated. In this embodiment, the xaxis is horizontal and the y axis is vertical. For example, if rotationis initiated with a finger touch, or cursor movement, in the left orright margins of the user interface, such as in FIG. 5C, the rotation ofthe image is only possible about the x axis. For example, in response tothe user initiating contact with the touch sensitive input device alongthe side of the screen, horizontal guide lines 512, as illustrated inFIG. 5C, indicate that rotation is only available around the x axis.Similarly, if rotation is initiated with a finger touch, or cursormovement, to an upper or lower margin of the user interface, such as isshown in FIG. 5D, the rotation of the image is only possible around they axis. This is shown in FIG. 5D by display of the vertical guide lines514, which indicate that rotation is only available around the y axis.In the examples of FIGS. 5C-5E, the horizontal guide lines 512 arepositioned at the x axis and the vertical guide lines 514 are positionedat the y axis.

In one embodiment, the user can control which axes are available forrotation of the 3D object based on a screen position from which rotationis initiated. In this embodiment, the screen position may be related to(or referenced from) a display frame displayed on the screen rather thanthe entire screen itself. For example, a screen might contain two ormore display frames which display 3D images. By touching within adisplay frame the user may both indicate the active display frame andselect the axis of rotation, as above, by first touching a positionalong the top, bottom, or side of the display frame.

In one embodiment, rather than choosing the restricted axis of rotationby first touching the top, bottom, or side of a display frame or screen,the user may choose the restricted axis of rotation by touching adjacentto an object. For example, touching the screen to the left or right ofthe object may indicate that rotation is to be restricted to the x axis,and touching above or below an object may indicate that rotation is tobe restricted to the y axis.

While the systems and methods discussed herein refer to rotations aboutand x axis, y axis, and/or the z axis, in other embodiments rotationsmay be about other axes. For example, in one embodiment a user canselect an axis of rotation that does not directly aligned with an X, Y,or Z axis of the image or object. Similarly, in some embodiments thesoftware may be configured to define axes that correlate with and/or areotherwise related to characteristics of an object to be rotated. Forexample, in one embodiment the available axes of rotation may vary basedon the type of 3D volume containing the object or objects being viewed,such as an MRI, CT, or ultrasound scanners. In another embodiment, theaxes of rotation may be related to a structure within the 3D volume. Forexample, a radiologist viewing a 3D display of a patient's spine from avolumetric CT scan may prefer that rotations are performed about a longaxis of the spine for the purpose of efficiently interpreting the exam.Due to asymmetric patient positioning or anatomical asymmetry within thepatient, the patent's spine may be obliquely oriented with regard to theacquired imaging volume. Thus, in an embodiment, the imaging volume maybe rotated so that the x, y, and z axes are aligned relative to thepatient's anatomy, such as to allow the patient's spine be aligned alongthe y axis. In other embodiments, the imaging volume may not be rotated,but a new rotational axis (e.g., not the x, y, or z axis) may bedetermined (either manually by the user or automatically by thecomputing system) in order to allow rotations about a different axis(such as the long axis of the patient's spine). In addition, in someembodiments, the x, y, and/or z axes may relate to a collection ofobjects, a single object, a single object within a collection ofobjects, and/or a camera angle.

In this embodiment, the image can be rotated in both the x and y axes byinitiating rotation with a finger touch, or cursor movement (or otherpredefined input), within a central region of the user interface, suchas is illustrated in FIG. 5E. As shown in FIG. 5E, rotation is availablearound both the horizontal and vertical axes, as indicated by display ofboth the horizontal guide lines 512 and the vertical guide lines 514indicating rotation about the x axis and y axis respectively. In someembodiments, the user may select rotation around only a z axis byinitiating rotation at a particular location, such as the center of theimage. In those embodiments, an indicator such as the guide circlediscussed above with reference to FIG. 4 may be displayed to indicate tothe user that rotation is limited and/or restricted to rotations aroundthe z axis. Rotation around the z axis may be performed in othermanners, such as the multi-touch methods discussed below.

In other embodiments, selection of the axis-specific rotation functionsmay be performed in different manners. For example, a first gesture maybe performed on a touch sensitive display in order to select rotationaround only the x axis (for example, FIG. 5C), while a second gesturemay be performed in order to select rotation around only the y axis (forexample, FIG. 5D). In another embodiment, a voice commands may beprovided to select rotation around one or more axes. Any other commandsor inputs may be used to select axis specific rotation functionality.

FIGS. 6A-6C illustrate additional controls that are available on atouchscreen device with multi-touch. In one embodiment, the controlsillustrated in the embodiments of FIGS. 6A-6C may be used in conjunctionwith the rotation functionality discussed with reference to FIGS. 5A-5D.FIG. 6A illustrates a start position of an image 610, which may be any3D object or any 2D image.

In the embodiment of FIG. 6B, a resize operation is being performed bythe user adjusting the distance between two fingers that are touchingthe screen. For example, as the user moves the fingers apart, the 3Dobject appears to increase in size and, likewise, as a user moves thefingers together, the 3D object appears to decrease in size. Thus, theuser can easily resize the image using multi-touch functionality.

FIG. 6C illustrates the user moving the three-dimensional object bymovement of two fingers in the same direction. For example, if bothfingers are substantially uniformly moved down on the screen, thethree-dimensional image is moved down. Similarly, if both fingers aresubstantially uniformly moved left or right, the three-dimensional imageis shifted left or right, respectively. Accordingly, the user can easilyadjust a position of the three-dimensional image. For larger images,such image translation commands may be used to move from one section ofan image to another.

In the example of FIG. 6D, the user is able to rotate the 3D objectaround the z axis (for example, spinning the image clockwise orcounterclockwise) by adjusting the orientation of the two fingers thatare each touching the display. For example, in the illustration of FIG.6D, the two finger are rotating clockwise and the image iscorrespondingly rotated clockwise. Thus, the user can easily rotate the3D object about the z axis, possibly in conjunction with the rotationfeatures discussed above with reference to FIG. 5. While manipulation ofa 3D object is discussed with regard to the operations illustrated inFIG. 6A-6D, the user interface described could be used to manipulate 2Dimages.

In some embodiments, all three operations described in reference toFIGS. 6B, 6C, and 6D may occur simultaneously. In other embodiments, themultitouch or mouse movement discussed herein could control differentaxes than the ones described in the examples.

Example Image Adjustments

In some embodiments, rather than adjusting the view of an object, suchas discussed above (for example, changing a view rotation,magnification, translation, etc.), the user interface systems andmethods discussed herein may also be used to adjust actual properties ofobjects in 3D space. For example, objects that are drawn in a computeraided drafting (CAD) application (or any other imagegeneration/modification application) may be resized or rotated using themethods discussed above such that the actual properties of the objectsin 3D space are modified. FIG. 7A illustrates an example 3D CAD projectwith two 3D objects 710 and 720 that each have the same orientation.FIG. 7A may represent a display screen of a mobile or desktop computerdevice. In this embodiment, the user can select individual objects andadjust properties of the objects with reference to the 3D space (and theremainder of the CAD project). For example, in FIG. 7B the user hasrotated the object 720 about its y axis so that it now has anorientation that is different than the orientation of the object 720 inFIG. 7A, and different than the orientation of the other object 710 inFIGS. 7A and 7B. The rotation of the object 720 may be performed in asimilar manner as discussed above with reference to changing views ofobjects, for example, rotations about the y axis may be selected byinitiating rotation with a touch below or above the object 720.Similarly, if the user initiates the rotation operation by firsttouching his finger over the object he can rotate about both x and yaxes and if the user first touches to a side of the object, rotation isrestricted to rotation about the x axis. In the embodiment of FIG. 7B,the locked rotation axis is shown with guide lines 730 to indicate thatrotation is locked to rotations about the y axis.

In one embodiment, the methods discussed could be used to simultaneouslyselect both the object to manipulate, and the rotation axis to lock. Forexample, touching the screen near an object may both select the objectfor manipulation and lock the rotation axis based on the touch positionrelative to the nearest object.

In one embodiment, touching the edges of the display frame may be usedto select a mode in which the view of the entire collection of objectsmay be changed. In this embodiment, the position at which the screen istouched may be used to select how the scene should be rotated, using,for example, the method described with reference to FIG. 5. For example,touching the top or bottom of the display frame may restrict rotation ofthe scene around the y axis, while first touching a side of the screenmay restrict rotation about the x axis.

FIGS. 8A and 8B are another example of a CAD application. Using twofinger multitouch operations like those illustrated in FIGS. 6B, 6C, and6D, the user can translate an object, rotate it about the z axis, orchange the size of an object. The object that is the subject of theoperation may be selected by the user first touching the screen on ornear the object. In the example of FIG. 8B, the user started theoperation by touching the screen over an object, selecting it formagnification.

Adjustments of Other Display/Image Characteristics

In addition to adjusting the rotation, position, zoom level, etc. ofobjects in the manner discussed above, in some embodiments the userinterface functionality discussed above can be used to adjust otherproperties of images or objects, including viewing properties (forexample, how stored objects are displayed without necessarily changingthe actual stored object) and/or object properties (for example,actually changing characteristics of an image or 3D object). In general,the systems and methods discussed herein may be used to select and/ormodify properties of images or objects that can be changed in responseto characteristics of an initial touch (or other predefined command,such as a mouse click, voice command, gesture, etc.) with a userinterface, while keeping other properties locked. For example, FIGS.9A-9D illustrate other example characteristics of images that can beadjusted in one embodiment. FIG. 9A illustrates a sample medical image,an image from a brain CT scan, which is displayed with a window width of80 and a window level of 40. FIG. 9A serves as the initial state in thisexample, serving as the baseline for each of the actions described withreference to FIGS. 9B, 9C, and 9D.

In this example, touching the display at a side of the object (e.g., thehead anatomy depicted in the medical image of FIGS. 9A-9D) or side of adisplay, such as is illustrated in FIG. 9B, causes movements of theuser's finger up and down on the display to adjust only the window level(and/or brightness in some embodiments) of the medical image. Thus, withthe window level adjustment selected (for example by initially touchingto the left of the image) the user can move up and down on the image inorder to adjust the window level without worrying about changing othercharacteristics of the image. Only the component of finger motion up anddown is processed to adjust window level, with components of motion inthe left and right direction ignored by the system (or possiblyassociated with another process in some embodiments).

In FIG. 9C, the user has selected adjustment of window width (and/orcontrast in some embodiments) by initially touching the display belowthe medical image, preventing adjustment of window level. In otherembodiments, the same type of selection could be made by initiallytouching above the medical image, at the top of the display region, orat the bottom of the display region. Accordingly, with the window widthadjustment selected, the user can move left and right on the image inorder to adjust the width without worrying about adjusting othercharacteristics of the image. Only the component of finger motion leftand right is processed to adjust window width, with components of motionin the up and down direction ignored by the system (or possiblyassociated with another process in some embodiments).

Finally, in FIG. 9D the user has enabled adjustments of both the windowwidth and level by initially touching the display away from the top,bottom, and sides, and subsequently moving their finger in anydirection. Components of finger motion left and right, and up and down,are processed to adjust window width and level, respectively.

Additional Features

As noted above, the systems and methods described herein may provide,among other features, easy-to-learn, efficient, and/or unambiguousmethods for controlling rotation and/or other manipulation of 2D and/or3D images and/or objects. In addition, various embodiments of thesystems and methods provided herein provide one or more of the followingadvantages:

1. Restricted Object Rotation

In some embodiments, when rotation is allowed only about a single axis(for example, rotation is restricted to be about a single axis) usingany of the methods discussed above, movement of a cursor (or finger in atouchscreen embodiment) in only a single direction causes rotationand/or other manipulation about that selected axis. For example, withreference to FIG. 5D, rotation about the y axis is selected and movementof the user's finger left or right on the screen causes the image torotate about the y axis. However, any component of movement of theuser's finger up or down on the screen does not cause rotation of theimage around the y axis, or any other axis. Thus, with the rotationlocked about the y axis only movements in the perpendicular direction(for example, left and right on the screen) cause rotation about the yaxis. Likewise, if rotation about the x axis is selected, such as inFIG. 5C, only movements up and down on the screen causes rotations aboutthe x axis, and movements from left to right do not cause rotationsabout the x axis, or any other axis.

2. Guide Line Display with Cursor Proximity to Object

In some embodiments, guide lines appear in response to positioningand/or movement of a cursor (or finger in a touchscreen embodiment) overor near (for example, within a predetermined number of pixels of) anobject to be rotated or other portion of a display, such as the x and yaxes (whether visually displayed or not) or border of a user interface.This is in contrast to embodiments having the guide lines constantlydisplayed once a 3D rotation tool is selected. As discussed above, thevarious guide lines may appear as the user moves a cursor (or a fingertouch on a display screen) to different areas surrounding an image to berotated. Additionally, guide lines that show only the currentlyavailable axis (or axes) of rotation may be displayed to avoid confusionregarding the currently selected rotation axis.

3. Guide Line Display with Cursor Proximity to Image Axis

In some embodiments, guide lines appear as a user approaches an imageaxis (for example, the x or y axis of an image). For example when thecursor (or finger touch) approaches the x axis (for example, is withinfive, or some other number of, pixels of the x axis), a guide line mayappear. In one embodiment, such rotation guide lines may appear and beavailable for rotation of an image when the user has another imagemanipulation tool selected (for example, the system does not require a3D rotation tool to be selected in order to cause the guide lines toappear and rotations to be implemented).

In one embodiment, with a guide line displayed, the user activates a 3Drotation mode by providing another action, such as a left mouse click.With the 3D rotation mode selected, the user can initiate 3D rotationswith movements, such as those discussed above. In one embodiment, oncethe user activates the 3D rotation mode, the selected guide line(s)disappears (or changes one or more display characteristics). In suchembodiments, the 3D rotation mode may still be active (for example,until the user releases the left mouse button), but the guide line doesnot obfuscate the image. In other embodiments, the selected guide linedisappears (or changes one or more display characteristics) in responseto the cursor moving away from the guide line (for example, moving morethan five pixels away from the x axis).

4. Guide Line Display Non-Overlapping with Object

In some embodiments, guide lines that indicate the currently availableaxis (or axes) of rotation are displayed outside of the actual image tobe rotated. For example, with reference to FIG. 5D, the guide lines 514do not overlay the displayed 3D object, but instead are shown outside ofthe object. Accordingly, the guide lines 514 clearly indicate thatrotation about the y axis is available without obscuring the image.Likewise, with reference to FIG. 5E, guide lines 512 and 514 are shownto indicate that rotation about the x axis and the y axis is available,still without obscuring any of the displayed object. Depending on theembodiment, the position, spacing, thickness, and/or othercharacteristics of guide lines may be dynamically adjusted by softwareto allow the user to best recognize the guide lines. For example, in oneembodiment the system determines boundaries of an object to be rotatedand then presents guide lines on either side of the object, such that asmaller object would have guide lines that are closer together and alarger object would have guide lines that are further apart, such thatthe guide lines do not obscure the objects but are close to the objects.

Example Operation

FIG. 10 is a flowchart depicting an illustrative operation of thesystem, according to an embodiment of the present disclosure. The methodof FIG. 10 may be stored as a process accessible by, or integrated into,one or more modules as described below in reference to FIG. 1. Invarious embodiments, the blocks described below may be removed, othersmay be added, and/or the sequence of the blocks may be altered.

At block 1002, a 3D object is displayed to the user. The 3D object maybe displayed on, for example, a touch screen display or any other typeof display as described above. At block 1004, an input is received fromthe user that indicates the type of rotation initiated by the user. Forexample, in an embodiment, the user may touch a portion of the displayindicating that the user wishes to limit rotations to horizontalrotations, or the user may touch another portion of the displayindicating that the user wishes to limit rotations to verticalrotations, as described in reference to FIGS. 5B-5E above.Alternatively, the user may provide input via a mouse, and may indicatea rotation axis as described in reference to FIGS. 2-4 above.

At block 1006, guide lines related to the axis or axes of rotation, orother type of movement and/or manipulation, may optionally be display tothe user. Display of the guide lines may be accomplished as generallydescribed above. For example, in an embodiment a guide line may bedisplayed allowing the user to select a particular axis of rotation by,for example, touching, clicking on, and/or rolling over the guide line.

At block 1008, the axis or axes of rotation are determined based on theuser input. For example, rotation about a y axis may be determined basedon a user touching the bottom or top of the display. In another example,rotation about a z axis may be determined based on the user clicking on,or rolling over, an arced icon with a mouse pointer. Various other axesof rotation may be determined as described above.

At block 1010, rotation input is received from the user. For example,the user may slide a finger across a section of the display, and/or movea mouse pointer along a guide line. At block 1012, the 3D object isrotated based on the received rotation input. For example, the 3D objectmay be rotated about a horizontal or x axis as the user slides a fingervertically up or down the display. Alternatively, the movement of amouse pointer may be received, causing rotation of the 3D object.Rotation of the 3D object may be limited or restricted based on thedetermined axis or axes of rotation of block 1008.

As described above, in an embodiment, guide lines may be displayed thatindicate to the user the axis of rotation. In this embodiment, guidelines may be displayed, for example, concurrently with block 1010. In anembodiment, guide lines may be removed from the display once rotationinput is received from the user so as to not obscure the 3D object as itis rotated.

In various embodiments, and as described above, other actions may betaken at, for example, block 1012. For example, in an embodimentcharacteristics of the 3D object may be altered at block 1012 ratherthan, or in addition to, rotation of the 3D object. Various otherembodiments of the present disclosure may likewise be accomplished incorresponding blocks of FIG. 10. In an embodiment, the blocks of FIG. 10may apply to any multi-dimensional object, such a 2D object.

Example Computing Systems

FIG. 1 is a block diagram which shows the various components of a system100 for displaying information utilizing certain systems and methodsdescribed herein. As shown, the system 100 may include an informationdisplay computing device 150 (also referred to herein as a “computingdevice 150”) and may include other systems, including those shown inFIG. 1.

The computing device 150 may take various forms. In one embodiment, theinformation display computing device 150 may be a computer workstationhaving modules 151, such as software modules that provide thefunctionality described above with reference to FIGS. 2-10. Examples ofsuch modules may include, for example, a user interface module (that mayprovide the user interface to the user), a user input module (that mayreceive touch and/or mouse inputs from the user), and/or an objectrotation module (that may determine one or more objects to be rotated,and may further implement rotation of those objects), among othermodules. In other embodiments, modules 151 may reside on anothercomputing device, such as the server 210, such that processing that isperformed by the modules 151 may be performed by the computing device150, the server 210, or another computing device, depending on theembodiment. For example, in one embodiment the server 210 includessoftware modules for rendering and manipulating 3D images (and/orperforming any other functions discuss herein), such that the computingdevice 150 is not required to have similar modules. This “thin client”arrangement may allow a more powerful computing device, for example, theserver 210, to perform the computationally intense operations, forexample, rotation of 3D images, in order to allow the computing device150 to view and manipulate 3D images without having to perform suchcomputationally intensive operations.

In an embodiment, the user interface module may be configured to displaya multi-dimensional object on an electronic display, such as a displaydevice 155 described below. In an embodiment, the user input module maybe configured to receive inputs from a user at particular locations ofthe electronic display. The inputs may comprise, for example, mouseclicks or touch inputs at particular locations. The input may furtherindicate, for example, the initiation of a rotation function. In anembodiment, the object rotation module may be configured to accessrotation rules associated with the multi-dimensional object. Therotation rules may indicate, for example, planes of rotation availablefor rotating the multi-dimensional object based on the particularlocations of the inputs, as described in the various embodiments of thepresent description.

In one embodiment, the information display computing device 150comprises a server, a desktop computer, a workstation, a PictureArchiving and Communication System (PACS) workstation, a laptopcomputer, a mobile computer, a smartphone, a tablet computer, a cellphone, a personal digital assistant, a gaming system, a kiosk, an audioplayer, any other device that utilizes a graphical user interface,including office equipment, automobiles, airplane cockpits, householdappliances, automated teller machines, self-service checkouts at stores,information and other kiosks, ticketing kiosks, vending machines,industrial equipment, and/or a television, for example.

The information display computing device 150 may run an off-the-shelfoperating system 154 such as a Windows, Linux, MacOS, Android, or iOS,or mobile versions of such operating systems. The information displaycomputing device 150 may also run a more specialized operating systemwhich may be designed for the specific tasks performed by the computingdevice 150, or any other available operating system.

The information display computing device 150 may include one or morecomputing processors 152. The computer processors 152 may includecentral processing units (CPUs), and may further include dedicatedprocessors such as graphics processor chips, or other specializedprocessors. The processors generally are used to execute computerinstructions based on the information display software modules 151 tocause the computing device to perform operations as specified by themodules 151. The modules 151 may include, by way of example, components,such as software components, object-oriented software components, classcomponents and task components, processes, functions, attributes,procedures, subroutines, segments of program code, drivers, firmware,microcode, circuitry, data, databases, data structures, tables, arrays,and variables. For example, modules may include software code written ina programming language, such as, for example, Java, JavaScript,ActionScript, Visual Basic, HTML, Lua, C, C++, or C#. While “modules”are generally discussed herein with reference to software, any modulesmay alternatively be represented in hardware or firmware. Generally, themodules described herein refer to logical modules that may be combinedwith other modules or divided into sub-modules despite their physicalorganization or storage.

The information display computing device 150 may also include memory153. The memory 153 may include volatile data storage such as RAM orSDRAM. The memory 153 may also include more permanent forms of storagesuch as a hard disk drive, a flash disk, flash memory, a solid statedrive, or some other type of non-volatile storage.

The information display computing device 150 may also include or beinterfaced to one or more display devices 155 that provide informationto the users. Display devices 155 may include a video display, such asone or more high-resolution computer monitors, or a display deviceintegrated into or attached to a laptop computer, handheld computer,smartphone, computer tablet device, or medical scanner. In otherembodiments, the display device 155 may include an LCD, OLED, or otherthin screen display surface, a monitor, television, projector, a displayintegrated into wearable glasses, or any other device that visuallydepicts user interfaces and data to viewers.

The information display computing device 150 may also include or beinterfaced to one or more input devices 156 which receive input fromusers, such as a keyboard, trackball, mouse, 3D mouse, drawing tablet,joystick, game controller, touch screen (for example, capacitive orresistive touch screen), touchpad, accelerometer, video camera and/ormicrophone.

The information display computing device 150 may also include one ormore interfaces 157 which allow information exchange between informationdisplay computing device 150 and other computers and input/outputdevices using systems such as Ethernet, Wi-Fi, Bluetooth, as well asother wired and wireless data communications techniques.

The modules of the information display computing device 150 may beconnected using a standard based bus system. In different embodiments,the standard based bus system could be Peripheral Component Interconnect(“PCI”), PCI Express, Accelerated Graphics Port (“AGP”), Micro channel,Small Computer System Interface (“SCSI”), Industrial StandardArchitecture (“ISA”) and Extended ISA (“EISA”) architectures, forexample. In addition, the functionality provided for in the componentsand modules of information display computing device 150 may be combinedinto fewer components and modules or further separated into additionalcomponents and modules.

The computing device 150 may communicate and/or interface with othersystems and/or devices. In one or more embodiments, the computing device150 may be connected to a computer network 190. The computer network 190may take various forms. It may include a wired network or a wirelessnetwork, or it may be some combination of both. The computer network 190may be a single computer network, or it may be a combination orcollection of different networks and network protocols. For example, thecomputer network 190 may include one or more local area networks (LAN),wide area networks (WAN), personal area networks (PAN), cellular or datanetworks, and/or the Internet.

The computing device 150 may be configured to interface with variousnetworked computing devices via the network 190 in order to provideefficient and useful review of data that. The server 210 may include anycomputing device, such as image acquisition and/or storage devices fromwhich the computing device 150 accesses image data that is usable togenerate 3D images for display in the manner discussed above.

Other

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

Any process descriptions, elements, or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or steps in the process. Alternateimplementations are included within the scope of the embodimentsdescribed herein in which elements or functions may be deleted, executedout of order from that shown or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved, as would be understood by those skilled in the art.

All of the methods and processes described above may be embodied in, andpartially or fully automated via, software code modules executed by oneor more general purpose computers. For example, the methods describedherein may be performed by an Information Display Computing Deviceand/or any other suitable computing device. The methods may be executedon the computing devices in response to execution of softwareinstructions or other executable code read from a tangible computerreadable medium. A tangible computer readable medium is a data storagedevice that can store data that is readable by a computer system.Examples of computer readable mediums include read-only memory,random-access memory, other volatile or non-volatile memory devices,CD-ROMs, magnetic tape, flash drives, and optical data storage devices.

Many variations and modifications may be made to the above-describedembodiments, the elements of which are to be understood as being amongother acceptable examples. All such modifications and variations areintended to be included herein within the scope of this disclosure. Theforegoing description details certain embodiments of the invention. Itwill be appreciated, however, that no matter how detailed the foregoingappears in text, the invention can be practiced in many ways. As is alsostated above, the use of particular terminology when describing certainfeatures or aspects of the invention should not be taken to imply thatthe terminology is being re-defined herein to be restricted to includingany specific characteristics of the features or aspects of the inventionwith which that terminology is associated.

What is claimed is:
 1. (canceled)
 2. A method comprising: by one or morecomputer processors configured to execute software instructions:displaying a multi-dimensional object on a display of a computingsystem; determining boundaries of the multi-dimensional object;displaying, on the display, one or more guide lines based on thedetermined boundaries of the multi-dimensional object, wherein the oneor more guide lines indicate one or more available manipulationfunctions; receiving an input from a user of the computing system, theinput comprising at least one of: an initial touch input at a firstlocation on the display and indicating initiation of a manipulationfunction of the one or more available manipulation functions, followedby a secondary touch input indicating motion from the first location; oran initial mouse click at a first location on the display and indicatinginitiation of a manipulation function of the one or more availablemanipulation functions, followed by a movement of a mouse cursorindicating motion from the first location; accessing manipulation rulesassociated with the multi-dimensional object, the manipulation rulesindicating at least one of: axes of rotation available for rotating themulti-dimensional object based on the first location of the input, orviewing properties of the multi-dimensional object available formanipulation based on the first location of the input; and manipulating,on the display and in proportion to the indicated motion from the firstlocation, the multi-dimensional object, wherein the manipulating isbased on: the manipulation rules, the first location, the motion fromthe first location, and the manipulation function.
 3. The method ofclaim 2, wherein the one or more guide lines do not overlap with themulti-dimensional object.
 4. The method of claim 2 further comprising:by the one or more computer processors configured to execute softwareinstructions: in response to determining that the first location of theinput is to a right side or a left side of the display, and based on themanipulation rules, implementing the manipulation function such thatrotation of the multi-dimensional object is limited to rotations about ahorizontal axis of the multi-dimensional object, and such that thecomputing system does not allow rotation of the multi-dimensional objectabout any other axis until the manipulation function is released; inresponse to determining that the first location of the input is to a topportion or a bottom portion of the display, and based on themanipulation rules, implementing the manipulation function such thatrotation of the multi-dimensional object is limited to rotations about avertical axis of the multi-dimensional object, and such that thecomputing system does not allow rotation of the multi-dimensional objectabout any other axis until the manipulation function is released; and inresponse to determining that the first location of the input is near thecenter of the display, and based on the manipulation rules, implementingthe manipulation function such that rotation of the multi-dimensionalobject is limited to rotations about both the horizontal and verticalaxes, and such that the computing system does not allow rotation of themulti-dimensional object about any other axis until the manipulationfunction is released.
 5. The method of claim 4 further comprising: bythe one or more computer processors configured to execute softwareinstructions: further in response to determining that the first locationof the input is to the right side or the left side of the display,displaying one or more horizontal guide lines on the display along atleast a portion of the horizontal axis of the multi-dimensional object;further in response to determining that the first location of the inputis to the top portion or bottom portion of the display, displaying oneor more vertical guide lines on the display along at least a portion ofthe vertical axis of the multi-dimensional object; and further inresponse to determining that the first location of the input is near thecenter of the display, displaying one or more horizontal guide lines andone or more vertical guide lines on the display along at least a portionof each of the respective horizontal axis of the multi-dimensionalobject and vertical axis of the multi-dimensional object.
 6. The methodof claim 2 further comprising: by the one or more computer processorsconfigured to execute software instructions: in response to determiningthat the first location of the input is one or near an icon, and basedon the manipulation rules, implementing the manipulation function suchthat rotation of the multi-dimensional object is limited to at least oneof both a horizontal axis and a vertical axis of the multi-dimensionalobject, or a z-axis of the multi-dimensional object, and such that thecomputing system does not allow rotation of the multi-dimensional objectabout any other axis until the manipulation function is released.
 7. Themethod of claim 2 further comprising: by the one or more computerprocessors configured to execute software instructions: adjusting acharacteristic of the multi-dimensional object based at least in part onthe manipulation function.
 8. The method of claim 2 further comprising:by the one or more computer processors configured to execute softwareinstructions: in response to determining that the first location of theinput is to a right side or a left side of the display, adjusting afirst of a plurality of viewing properties of the multi-dimensionalobject; and in response to determining that the first location of theinput is to a top portion or a bottom portion of the display, adjustinga second of the plurality of viewing properties of the multi-dimensionalobject; wherein the viewing properties include at least one of: abrightness, or a contrast.
 9. The method of claim 2, whereincharacteristics of the one or more guide lines are dynamically adjustedto allow the user to easily recognize the one or more guide lines, andwherein the characteristics comprise at least one of: a position, aspacing, or a thickness.
 10. The method of claim 2 further comprising:by the one or more computer processors configured to execute softwareinstructions: in response to receiving the input, removing the guidelines from the display.
 11. The method of claim 2, wherein at least oneof a vertical axis of the multi-dimensional object, a horizontal axis ofthe multi-dimensional object, or a z-axis of the multi-dimensionalobject is defined based on correlation with characteristics of themulti-dimensional object.
 12. A computer system comprising: one or morehardware computer processors configured to execute software instructionsin order to perform operations comprising: displaying amulti-dimensional object on a display of a computing system; determiningboundaries of the multi-dimensional object; displaying, on the display,one or more guide lines based on the determined boundaries of themulti-dimensional object, wherein the one or more guide lines indicateone or more available manipulation functions; receiving an input from auser of the computing system, the input comprising at least one of: aninitial touch input at a first location on the display and indicatinginitiation of a manipulation function of the one or more availablemanipulation functions, followed by a secondary touch input indicatingmotion from the first location; or an initial mouse click at a firstlocation on the display and indicating initiation of a manipulationfunction of the one or more available manipulation functions, followedby a movement of a mouse cursor indicating motion from the firstlocation; accessing manipulation rules associated with themulti-dimensional object, the manipulation rules indicating at least oneof: axes of rotation available for rotating the multi-dimensional objectbased on the first location of the input, or viewing properties of themulti-dimensional object available for manipulation based on the firstlocation of the input; and manipulating, on the display and inproportion to the indicated motion from the first location, themulti-dimensional object, wherein the manipulating is based on: themanipulation rules, the first location, the motion from the firstlocation, and the manipulation function.
 13. The computer system ofclaim 12, wherein the one or more guide lines do not overlap with themulti-dimensional object.
 14. The computer system of claim 12, whereinthe one or more hardware computer processors are configured to executesoftware instructions in order to further perform operations comprising:in response to determining that the first location of the input is to aright side or a left side of the display, and based on the manipulationrules, implementing the manipulation function such that rotation of themulti-dimensional object is limited to rotations about a horizontal axisof the multi-dimensional object, and such that the computing system doesnot allow rotation of the multi-dimensional object about any other axisuntil the manipulation function is released; in response to determiningthat the first location of the input is to a top portion or a bottomportion of the display, and based on the manipulation rules,implementing the manipulation function such that rotation of themulti-dimensional object is limited to rotations about a vertical axisof the multi-dimensional object, and such that the computing system doesnot allow rotation of the multi-dimensional object about any other axisuntil the manipulation function is released; and in response todetermining that the first location of the input is near the center ofthe display, and based on the manipulation rules, implementing themanipulation function such that rotation of the multi-dimensional objectis limited to rotations about both the horizontal and vertical axes, andsuch that the computing system does not allow rotation of themulti-dimensional object about any other axis until the manipulationfunction is released.
 15. The computer system of claim 14, wherein theone or more hardware computer processors are configured to executesoftware instructions in order to further perform operations comprising:further in response to determining that the first location of the inputis to the right side or the left side of the display, displaying one ormore horizontal guide lines on the display along at least a portion ofthe horizontal axis of the multi-dimensional object; further in responseto determining that the first location of the input is to the topportion or bottom portion of the display, displaying one or morevertical guide lines on the display along at least a portion of thevertical axis of the multi-dimensional object; and further in responseto determining that the first location of the input is near the centerof the display, displaying one or more horizontal guide lines and one ormore vertical guide lines on the display along at least a portion ofeach of the respective horizontal axis of the multi-dimensional objectand vertical axis of the multi-dimensional object.
 16. The computersystem of claim 12, wherein the one or more hardware computer processorsare configured to execute software instructions in order to furtherperform operations comprising: in response to determining that the firstlocation of the input is one or near an icon, and based on themanipulation rules, implementing the manipulation function such thatrotation of the multi-dimensional object is limited to at least one ofboth a horizontal axis and a vertical axis of the multi-dimensionalobject, or a z-axis of the multi-dimensional object, and such that thecomputing system does not allow rotation of the multi-dimensional objectabout any other axis until the manipulation function is released.
 17. Acomputer-readable medium storing software instructions configured forexecution by a computing system having one or more hardware processorsin order to cause the computing system to perform operations comprising:displaying a multi-dimensional object on a display of the computingsystem; determining boundaries of the multi-dimensional object;displaying, on the display, one or more guide lines based on thedetermined boundaries of the multi-dimensional object, wherein the oneor more guide lines indicate one or more available manipulationfunctions; receiving an input from a user of the computing system, theinput comprising at least one of: an initial touch input at a firstlocation on the display and indicating initiation of a manipulationfunction of the one or more available manipulation functions, followedby a secondary touch input indicating motion from the first location; oran initial mouse click at a first location on the display and indicatinginitiation of a manipulation function of the one or more availablemanipulation functions, followed by a movement of a mouse cursorindicating motion from the first location; accessing manipulation rulesassociated with the multi-dimensional object, the manipulation rulesindicating at least one of: axes of rotation available for rotating themulti-dimensional object based on the first location of the input, orviewing properties of the multi-dimensional object available formanipulation based on the first location of the input; and manipulating,on the display and in proportion to the indicated motion from the firstlocation, the multi-dimensional object, wherein the manipulating isbased on: the manipulation rules, the first location, the motion fromthe first location, and the manipulation function.
 18. Thecomputer-readable medium of claim 17, wherein the wherein the softwareinstructions are configured for execution by the computing system inorder to cause the computing system to further perform operationscomprising: in response to determining that the first location of theinput is to a right side or a left side of the display, adjusting afirst of a plurality of viewing properties of the multi-dimensionalobject; and in response to determining that the first location of theinput is to a top portion or a bottom portion of the display, adjustinga second of the plurality of viewing properties of the multi-dimensionalobject; wherein the viewing properties include at least one of: abrightness, or a contrast.
 19. The computer-readable medium of claim 17,wherein characteristics of the one or more guide lines are dynamicallyadjusted to allow the user to easily recognize the one or more guidelines, and wherein the characteristics comprise at least one of: aposition, a spacing, or a thickness.
 20. The computer-readable medium ofclaim 17, wherein the wherein the software instructions are configuredfor execution by the computing system in order to cause the computingsystem to further perform operations comprising: in response toreceiving the input, removing the guide lines from the display.
 21. Thecomputer-readable medium of claim 17, wherein at least one of a verticalaxis of the multi-dimensional object, a horizontal axis of themulti-dimensional object, or a z-axis of the multi-dimensional object isdefined based on correlation with characteristics of themulti-dimensional object.